﻿#define _CRT_SECURE_NO_WARNINGS 1
//描述
//给定一个长度为n的数组nums，请你找到峰值并返回其索引。数组可能包含多个峰值，在这种情况下，返回任何一个所在位置即可。
//1.峰值元素是指其值严格大于左右相邻值的元素。严格大于即不能有等于
//2.假设 nums[-1] = nums[n] = -\infty−∞
//3.对于所有有效的 i 都有 nums[i] != nums[i + 1]
//4.你可以使用O(logN)的时间复杂度实现此问题吗？
//法一：暴力解法
//int i = 0;
//if (nums[0] > nums[1])
//{
//    return 0;
//}
//if (nums[numsLen - 2] < nums[numsLen - 1])
//    return numsLen - 1;
//for (i = 1; i < numsLen - 1; i++)
//{
//    if (nums[i - 1] < nums[i] && nums[i] > nums[i + 1])
//        return i;
//}
//return 0;
//法二：二分查找
//int findPeakElement(int* nums, int numsLen)
//{
//    if (numsLen == 1 || nums[0] > nums[1])
//        return 0;
//    if (nums[numsLen - 1] > nums[numsLen - 2])
//        return numsLen - 1;
//    int left = 0, right = numsLen - 1, mid;
//    while (left < right)
//    {
//        mid = (left + right) / 2;
//        if (nums[mid] < nums[mid + 1])//中间比右边小，意味着右边有峰值
//            left = mid + 1;
//        else
//            right = mid;//不然左边肯定有峰值
//    }
//    return left;
//}
// 描述
//牛牛以前在老师那里得到了一个正整数数对(x, y), 牛牛忘记他们具体是多少了。
//
//但是牛牛记得老师告诉过他x和y均不大于n, 并且x除以y的余数大于等于k。
//牛牛希望你能帮他计算一共有多少个可能的数对。
//
//输入描述：
//输入包括两个正整数n, k(1 <= n <= 10 ^ 5, 0 <= k <= n - 1)。
//输出描述：
//对于每个测试用例, 输出一个正整数表示可能的数对数量。
//#include<stdio.h>
//int main()
//{
//    long n, k;
//    scanf("%ld%ld", &n, &k);
//    if (k == 0)
//    {
//        printf("%ld", n * n);
//        return 0;
//    }
//    long count = 0;
//    for (long y = k + 1; y <= n; y++)
//    {
//        count += (n / y) * (y - k) + ((n % y < k) ? 0 : (n % y - k + 1));
//    }
//    printf("%ld", count);
//    return 0;
//}
//描述
//输入一个字符串和一个整数 k ，截取字符串的前k个字符并输出
//
//本题输入含有多组数据
//
//数据范围：字符串长度满足 1 \le n \le 100 \1≤n≤100  ， 1 \le k \le n \1≤k≤n
//输入描述：
//1.输入待截取的字符串
//
//2.输入一个正整数k，代表截取的长度
//
//输出描述：
//截取后的字符串
//#include<stdio.h>
//int main()
//{
//    char arr[100] = { 0 };
//    while (scanf("%s", arr) != EOF)
//    {
//        int k;
//        scanf("%d", &k);
//        arr[k] = '\0';
//        printf("%s\n", arr);
//    }
//    return 0;
//}